home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / source / units / mus.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-04-22  |  1.6 KB  |  59 lines

  1. UNIT Mus;
  2. {$O+,F+}
  3.  
  4. INTERFACE
  5.  
  6. CONST ON=TRUE; OFF=FALSE;       { Eks: MusCursor(ON) eller MusCursor(OFF)   }
  7.  
  8. VAR   MusK,MusX,MusY:WORD;      { Musposisjon, X,Y og Knapper               }
  9.  
  10. FUNCTION  ResetMus:BOOLEAN;     { Returnerer TRUE om musen er resatt riktig }
  11. FUNCTION  MusON:BOOLEAN;        { Er MusCursoren På eller Av                }
  12. PROCEDURE MusCursor(B:BOOLEAN); { Slå muscursoren På eller Av               }
  13. PROCEDURE SaveMus;              { Lagre Musposisjon, slå av muscursor       }
  14. PROCEDURE RestoreMus;           { Hent frem igjen Muscursor etter SaveMus   }
  15. PROCEDURE MusData;              { Hent data om knapper posisjon og lignende }
  16.  
  17. IMPLEMENTATION
  18.  
  19. VAR Mb,Sm:BOOLEAN;
  20.  
  21. FUNCTION ResetMus:BOOLEAN;
  22.  VAR T:WORD;
  23.  BEGIN
  24.    ASM MOV AX,$0000; INT $33; MOV T,AX; END;
  25.    ResetMus:=T<>$0000;
  26.  END;
  27.  
  28. PROCEDURE MusCursor(B:BOOLEAN);
  29.  BEGIN
  30.    Mb:=B;
  31.    IF B THEN ASM MOV AX,$0001; INT $33; END
  32.         ELSE ASM MOV AX,$0002; INT $33; END;
  33.  END;
  34.  
  35. FUNCTION  MusON:BOOLEAN; BEGIN MusON:=Mb;              END;
  36. PROCEDURE SaveMus;       BEGIN Sm:=Mb; MusCursor(OFF); END;
  37. PROCEDURE RestoreMus;    BEGIN MusCursor(Sm);          END;
  38.  
  39. PROCEDURE MusData;
  40.  BEGIN
  41.    ASM MOV AX,$0003; INT $33; MOV MusK,BX; MOV MusX,CX; MOV MusY,DX; END;
  42.    MusX:=MusX DIV 8+1; MusY:=MusY DIV 8+1;
  43.  END;
  44.  
  45. BEGIN
  46.   MusCursor(OFF); Mb:=OFF; Sm:=OFF;
  47.   IF NOT ResetMus THEN
  48.    BEGIN
  49.      WRITELN('Får ikke kontakt med musen, kontakt systemansvarlig.');
  50.      Halt;
  51.    END;
  52.    ASM
  53.      MOV       AX,$000A
  54.      MOV       BX,$0000
  55.      MOV       CX,$F700
  56.      MOV       DX,$0CFF
  57.      INT       $33
  58.    END;
  59. END.